package metier.jdbc.note;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import metier.MatiereCategorie;
import configuration.MessageAppli;

public class MatiereCategorieJdbc {
	
	/**
	 * Regourne le coef pour l'id correspondant.
	 * @param Connection connexion à la base
	 * @return Grade
	 */
	public static Integer getCoefById(Connection c, int idMatiere, int idCat) {
		Integer coef = null;
		// préparer la requete sql 
		try {
			PreparedStatement ps=c.prepareStatement("SELECT coef FROM matierecategorie " +
					"WHERE idMatiere = " + idMatiere + 
					" AND idCategorie = " + idCat );

			// Res commence par 1 et pas 0.
			ResultSet res = ps.executeQuery();
			while(res.next()){
				coef = res.getInt("coef");
			}
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, MessageAppli.MSG_BDD_ERREUR_REQUETE,
					MessageAppli.MSG_BDD_TITRE_ERREUR, JOptionPane.ERROR_MESSAGE);
		}
		return coef;
	}
	
	/**
	 * Regourne la liste des coef pour un stage.
	 * @param Connection connexion à la base
	 * @return Grade
	 */
	public static ArrayList<MatiereCategorie> getCoefByCategorie(Connection c, int idCat) {
		ArrayList<MatiereCategorie> lCoef = new ArrayList<MatiereCategorie>();
		// préparer la requete sql 
		try {
			PreparedStatement ps=c.prepareStatement("SELECT * FROM matierecategorie " +
					" WHERE idCategorie = " + idCat );

			// Res commence par 1 et pas 0.
			ResultSet res = ps.executeQuery();
			while(res.next()){
				lCoef.add(new MatiereCategorie(res.getInt("idMatiere"), 
						res.getInt("idCategorie"), 
						res.getInt("coef")));
			}
			ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, MessageAppli.MSG_BDD_ERREUR_REQUETE,
					MessageAppli.MSG_BDD_TITRE_ERREUR, JOptionPane.ERROR_MESSAGE);
		}
		return lCoef;
	}
}
